const { reject } = require('lodash');
const { resolve } = require('./MyPromise');
const MyPromise = require('./MyPromise');
let promise = new MyPromise((resolve,reject)=>{
    // setTimeout(function(){
    //     resolve("我成功啦");
    // },500)
    // throw new Error("执行器报错了")
    // resolve("我成功啦");
    reject("我失败了");
})
// function other(){
//     return new MyPromise((resolve,reject)=>{
//         resolve("我走了other的分支")
//     })
// } 
// let p1 = promise.then(value=>{return p1},reason=>{});
// p1.then(value=>console.log(value),reason=>console.log(reason));
// promise.then(value=>{
//     console.log(value)
//     // throw new Error("then执行报错了");
//     return "我被链式调用了"
// },reason=>{
//     console.log(reason);
//     return 100;
// })
// .then((value)=>{
//     console.log(value)
//     // return other();
// },reason=>{
//     console.log(reason.message)
// })
// .then((value)=>{
//    console.log(value);
// },(reason)=>{
//     console.log(reason);
// })
// promise.then(value=>{
//     console.log(value)
// },reason=>{
//     console.log(reason)
// })
// promise.then(value=>{
//     console.log(value)
// },reason=>{
//     console.log(reason)
// })
// promise.then().then().then((value)=>{
//     console.log(value);
// },reason => {
//     console.log(reason);
// })
// let p1 = function () { return new MyPromise((resolve,reject)=>{
//     resolve("p1");
// })
// }
// let p2 = function () {return new MyPromise((resolve,reject)=>{
//     setTimeout(()=>{
//         resolve("p2");
//     },2000)
// })
// }

// MyPromise.all(['a','v',p1(),p2(),'m']).then(value=>console.log(value),reason=>console.log(reason));

// MyPromise.resolve(100).then(value=>console.log(value));
// MyPromise.resolve(new MyPromise(resolve => resolve("来来"))).then(value=>console.log(value));